Service providers such as on-line travel agents, book stores, or IT service suppliers typically provide a database of their available services together with a user interface comprising a series of interlinked web-pages. These web-pages include the facility for a user to enter data specific to their requirements, such as a holiday destination and period for example in order to search for available flights and/or hotels. Similarly a user may search for a book using category or author keywords for example. In each case the web-site will return a number of results of goods and/or services which match the user-entered user-specific requirements. The user can then review these results for appropriate goods and/or services. However typically a large number of results are returned, especially if many service providers' web-sites are queried. The user may then filter or order the results according to further criteria, such as list the results from lowest to highest price, or filter on flights leaving from the user's local airport or using a particular airline. Alternatively the user may enter a detailed set of options presented on the web-site in order to reduce the number of results returned and their relevance to the user. In both cases this is time consuming for the user, and often the user will not know what sort of information about them will be most relevant to controlling the search results.
Personalising XML Text Search in Piment” by Sihem Amer-Yahia et al at the following http website: www.vldb2005.org/program/slides/demo/s1310-amer-yahia.ppt discloses a method of supplementing or customising user queries by parsing them for keywords, and adding related keywords from a thesaurus for example. However whilst this may provide the results the user intended, it does so at the expense of a lot more results.
US2003050865 discloses a system which attempts to solve this problem by maintaining a detailed user profile on the user's client which can then be applied to incoming results from service provider web-sites in order to filter out results that don't meet the requirements defined in the user profile. In one of the examples given, the user wants to find a hotel and has various data in their user profile such as: is a wheelchair user; has various discount coupon schemes; frequent flier data; hobbies; hotel preferences such as amenities wanted, smoking or non-smoking; and so on. The user then enters a general hotel query including constraints such as location, dates, and price range. The client agent then shortlists or filters the results returned based on the criteria in the user profile. The client agent then sends selective queries based upon the user profile directly to the short-listed service provider servers. The hotel or other service provider servers then query their knowledge base to answer the selective queries and provide this data to the client agent which in turn presents it to the user. However this requires that the short-listed servers are able to process these types of selected queries. This also requires a lot of processing power by the client which must shortlist a large number of results, send the selected queries and receive the further results for presentation to the user. For client agents installed on wireless devices, a large amount of bandwidth is also consumed in sending two sets of queries, and receiving two sets of results. Also the user has to enter and remember the information for the general query which is inconvenient for the user. This is exacerbated on a device with a constrained interface (a hand held for example) making the process more tedious, and in addition a lot of screen space could be consumed.